package ru.agiledev.akb.shared;

/**
 * Created by a.kirillov
 * Date: 3/28/11 Time: 10:33 PM
 */
public enum QType {
    STRUCTURE_DESCRIPTION("Описание структуры"),
    CHARS_DESCRIPTION("Описание характеристик"),
    WORK_DESCRIPTION("Описание работы"),
    FUNCTIONS_DESCRIPTION("Описание функций"),
    PURPOSE_DESCRIPTION("Описание назначения"),
    USAGE_DESCRIPTION("Описание применения"),
    BELONGING_DESCRIPTION("Описание принадлежности"),
    DIFFERENCES_DESCRIPTION("Описание различий"),
    COMMONS_DESCRIPTION("Описание общих характеристик"),
    FEATURES_DESCRIPTION("Описание особенностей"),
    CAPABILITIES_DESCRIPTION("Описание возможностей");

    private String qType;

    private QType(String qType) {
        this.qType = qType;
    }

    public static String[] getTypesAsArray(){
        QType[] values = QType.values();
        String[] result = new String[values.length];
        for(int i=0; i< values.length; i++){
            result[i] = values[i].qType;
        }
        return result;
    }

    public static QType fromString(String type){

        if((type!=null)&&(type.length()>0)){

        if(type.equalsIgnoreCase("Описание структуры")) return QType.STRUCTURE_DESCRIPTION;
        if(type.equalsIgnoreCase("Описание характеристик")) return QType.CHARS_DESCRIPTION;
        if(type.equalsIgnoreCase("Описание работы")) return QType.WORK_DESCRIPTION;
        if(type.equalsIgnoreCase("Описание функций")) return QType.FUNCTIONS_DESCRIPTION;
        if(type.equalsIgnoreCase("Описание назначения")) return QType.PURPOSE_DESCRIPTION;
        if(type.equalsIgnoreCase("Описание применения")) return QType.USAGE_DESCRIPTION;
        if(type.equalsIgnoreCase("Описание принадлежности")) return QType.BELONGING_DESCRIPTION;
        if(type.equalsIgnoreCase("Описание различий")) return QType.DIFFERENCES_DESCRIPTION;
        if(type.equalsIgnoreCase("Описание общих характеристик")) return QType.COMMONS_DESCRIPTION;
        if(type.equalsIgnoreCase("Описание v")) return QType.FEATURES_DESCRIPTION;
        else return QType.CAPABILITIES_DESCRIPTION;
        } else return null;
    }

    public String getString(){
        return qType;
    }
}
